草庐IT

Android JSONObject 与 GSON

全部标签

java - 使用 GSON 反序列化的父对象的参数实例化子对象并使用泛型?

我大致有以下结构classMyDeserialParent{MyChildInterfacemSerialChild;...//someotherfields(not'type')}但是它是从一个杂乱的JSON结构反序列化的,子节点的两个属性在父节点上返回,如下所示。{"myDeserialParents":[{...//someparentproperties"type":"value",//usedinaTypeAdaptertochoosechildimplementation"childProp1":"1","childProp2":"2",},...//moreinthisl

java - Gson 使用 InstanceCreator 反序列化嵌套对象

我有一个名为PageItem的类,它有一个以Context作为参数的构造函数:PageItem(Contextcontext){super(context);this.context=context;}PageItem具有以下属性:privateintid;privateStringTitle;privateStringDescription;publicNewsprovidernewsprovider;publicTopictopic;Newsprovider和Topic是我的应用程序的其他类,它们具有以下构造函数:Newsprovider(Contextcontext){super

java - com.google.gson.JsonSyntaxException 试图解析 json 中的日期/时间

我正在使用RestTemplete从restapi获取json数据,我正在使用Gson将数据从json格式解析为对象Gsongson=newGson();restTemplate=newRestTemplate();restTemplate.getMessageConverters().add(newGsonHttpMessageConverter());restTemplate.getMessageConverters().add(newStringHttpMessageConverter());ListresultList=null;resultList=Arrays.asList

java - 使用 GSON 将 java.time.LocalDateTime (java 8) 序列化为 js Date 的最佳实践

在我们最近的项目中,我们使用java8。我需要将java.time.LocalDateTime序列化为java脚本Date格式。目前我所做的是定义一个自定义序列化程序以将LocalDateTime转换为时间戳。publicclassLocalDateTimeSerializerimplementsJsonSerializer{@OverridepublicJsonElementserialize(LocalDateTimelocalDateTime,Typetype,JsonSerializationContextjsonSerializationContext){Instantins

java - 使用 GSON 处理随机生成和不一致的 JSON 字段/键名称

我有以下JSON片段:{"randomlygeneratedKeyname0":"some-value","randomlygeneratedKeyname1":{"randomlygeneratedKeyname2":{"randomlygeneratedKeyname3":"some-value","randomlygeneratedKeyname4":"some-value"},"randomlygeneratedKeyname5":{"randomlygeneratedKeyname6":"some-value","randomlygeneratedKeyname7":"som

java - 使用 GSON 将 JSON 字符串转为 Java 对象

我正在尝试将json解析为java。根据jsonlint.com,我有以下字符串是有效的jsonprivatefinalstaticStringLOC_JSON="["+"{"+"\"lat1\":39.737567,"+"\"lat2\":32.7801399,"+"\"long1\":-104.98471790000002,"+"\"long2\":-96.80045109999998"+"},"+"["+"{"+"\"lat\":{"+"\"b\":38.88368709500021,"+"\"d\":40.620468491667026"+"},"+"\"long\":{"+"

java - Gson 。将整数反序列化为整数而不是 double

我有一个带有任意值的json对象。我想在map中反序列化它。一切正常,除了将整数转换为double。参见示例:{"id":1,"inner_obj":{"key":"value","num":666,"map":{"key":"value"}}}反序列化为这个(map.toString()):{id=1.0,inner_obj={key=value,num=666.0,map={key=value}}}是否有一些简单的方法可以将“id”和“num”反序列化为整数而不是double? 最佳答案 JSON中没有整数类型。1和1.0是一样

java - 使用 gson 转换器时如何将改造用作单例?

Fromthe@jakeWhartonansweryoushouldonlyevercallrestAdapter.createonceandre-usethesameinstanceofMyTaskServiceeverytimeyouneedtointeractwith.Icannotstressthisenough.Youcanusetheregularsingletonpatterninordertoensurethatthereonlyiseverasingleinstanceoftheseobjectsthatyouuseeverywhere.Adependencyinje

java - GSON反序列化后完成对象构造

我已成功开始使用GSON序列化和反序列化我的Android应用程序中的对象层次结构。某些被序列化的对象具有我必须标记为transient的成员(或者使用其他GSON注释来防止它们被序列化),因为它们是对我不想序列化的对象的引用作为输出JSON字符串的一部分。这些引用指向必须通过其他方式单独构造的对象。一旦结构被反序列化回Java对象,在某些时候我需要填写这些引用。我可以通过使用一系列setXXX()类型的方法轻松地做到这一点,但在完成之前,这些对象处于不完整状态。因此,我想知道是否有更强大的方法来解决这个问题。目前想到的方法:如果对象处于不完整状态,则让对象抛出RuntimeExcep

java - 使用 Jackson 或 Gson 的 Jsonpath

我得到了一个很大的json文档,我只想将其中的一部分解析到我的java类中。我在考虑使用jsonpath之类的东西从中提取部分数据,而不是创建整个java类层次结构。Jackson或Gson是否以任何方式支持jsonpath?如果是,能否为此提供一些示例或指向另一个标准库?例如,假设我有一个下面的文档,我只想在我的Java类中从中提取下面的数据:$.store.book[0]-只有第一本书$.store.bicycle.price-自行车价格{"store":{"book":[{"category":"reference","author":"NigelRees","title":"S